草庐IT

Swift 继承

全部标签

java - 使用继承与接口(interface)的装饰器设计模式

我想使用继承(DecoratorextendsComponent)实现Decorator设计模式,因为我需要访问Component类的protected字段/方法。问题在于Component类代表一种算法,它在构造时执行一些预处理并保存大量数据。现在,每次我要装饰一个组件时,我都会创建一个新的Decorator实例,这将需要构建一个新的(无用的)组件实例来执行不需要的计算并保存不需要的数据。我想使用接口(interface)而不是继承,但我将无法访问组件的protected信息。扩展Component类时我担心资源浪费是否正确?如果是这样,我如何才能在不失去对我需要的信息的访问权的情况

java - 继承了一些不好的 Java 泛型

这是一个讨厌的问题,可能是设计不好。编写一组简单的图表组件(饼图、条形图和折线图)并且被一些泛型的东西噎住了。事先,我确定有许多JavaAPI可以完全执行我在这里尝试执行的操作(制图/报告/等),但是我对这个作为一般泛型问题很感兴趣;它涉及图表和报告组件这一事实是微不足道的。每个图表都继承自通用抽象基类Chart:publicabstractclassChart{privateListcomponents;//...restoftheChartclass}我们有TextendsChartComponent的原因是因为每个图表子类都将由1+个所谓的图表组件(条形图、折线图、饼形楔形图等)

java - 使用继承和泛型组织 Jersey 资源的正确方法是什么?

我正在使用Jersey开发一个应用程序,我有很多资源。尽管这些资源的主要功能各不相同,但它们共享许多通用方法(如列表、读取、更新等)。该应用程序在GoogleAppEngine上运行,并使用Guice进行依赖注入(inject)。我的第一个方法是拥有一个包含所有通用逻辑的通用AbstactResource,并且它分别由所有其他资源扩展,这些资源添加了它们所需的自定义方法。publicclassAbstractResource{@GETpublicListPagelist(@QueryParam("limit")Integerlimit,@QueryParam("start")Integ

java - 在这种情况下我应该使用继承还是组合?

我正在编写一个简单的游戏,许多游戏对象共享属性。我有两个可能的实现方式。第一种是使用继承,如下图所示:如您所料,粗体类是抽象类。分支是实际使用的派生类。请务必注意,这些类保存有关对象的数据,没有与它们关联的功能。例如,Troop和Vehicle有一个共同的接口(interface),它们都使用该接口(interface)来执行attack()和move()等操作。上面概述的类层次结构只是原始统计数据。此外,它们都是真正的ISA关系。第二个实现使用组合。与上面的类层次结构不同,每个抽象类都是包含某些数据成员的“模块”。所以SpecialAbility有一个名为PointsValueObj

Java 继承 : the strict default-abstract and default-default conflict rules

谁能解释一下JLS§8.4.8.4中提到的“严格的default-abstract和default-default冲突规则”.它们是否在JLS中定义?我似乎找不到他们的定义。 最佳答案 我可能是错的,但这就是我对该部分的解释。“default-default”和“default-abstract”不是关键字。它们描述了与接口(interface)中的默认方法有关的两种不同的编译冲突规则。“default-default”与实现两个或多个接口(interface)的类有关,这些接口(interface)提供重写等效方法的默认实现,但不

java - 通用继承和调用 GetMethod().getReturnType()

在我当前的项目中,我有如下建模的类。在某些时候,getReturnTypeForGetId()类的方法在类A和B上被调用。使用A调用方法会按预期返回Integer,但B会返回Serializable。我在这里错过了什么?我是被一些令人发指的删除事情咬伤了,还是只是错过了某种通用的上下文破坏?编辑:向B添加一个覆盖的getId()方法解决了这个问题,但我仍然想了解我我遇到了。importjava.io.Serializable;publicclassWeirdTester{staticinterfaceIdentifiable{TgetId();voidsetId(finalTid);}

java - 这段代码如何继承父类的内部类?

下面是父类DblyLinkListpackageJavaCollections.list;importjava.util.Iterator;importjava.util.NoSuchElementException;publicclassDblyLinkListimplementsIterable{classDListNode{privateTitem;privateDListNodeprev;privateDListNodenext;DListNode(Titem,DListNodep,DListNoden){this.item=item;this.prev=p;this.next

java - 部分继承Java中的接口(interface)?

我想实现一个简单的缓存接口(interface):publicinterfaceCache{Objectget(Objectkey);Objectput(Objectkey,Objectvalue);voidclear();}我意识到它是接口(interface)java.util.Map的一部分。因此,像HashMap这样的对象应该能够传递给需要Cache对象的函数。但另一方面,我不想让我自己的Cache类实现整个Map接口(interface),因为除了这三个之外我真的不需要其他方法。Java不是鸭子类型的语言,那么在这种情况下最好的做法是什么? 最佳答

Java接口(interface)继承与扩展

假设您正在开发一款成熟的产品,并且需要一项新的搜索功能,而您的产品的50%都需要该功能。现在假设您已经与SomeDao建立了接口(interface)继承关系并且您不想破坏...publicinterfaceMoneyDaoextendsSomeDao{//OperationcommoninmuchoftheapplicationListfindByCriteria(MoneyCriteriacriteria);}...有没有一种方法可以公开方法“findByCriteria(..)”,而无需在与MoneyDao类似的所有其他地方以更简洁的方式重复它?请记住,如果可能的话,我想避免转换

java - JPA混合继承策略

我有3个实体:@EntitypublicabstractclassA{@IdpublicLongid;publicStringa1;publicStringa2;publicStringa3;//muchmorefields//gettersandsetters}@EntitypublicclassBextendsA{publicStringb1;publicStringb2;publicStringb3;//muchmorefields//gettersandsetters}@EntitypublicclassCextendsA{publicStringc;//that'sit.no